package com.tuyrt.hi.ui.tab.common;

import android.view.ViewGroup;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;

import java.util.List;

/**
 * author: Administrator on 2021/4/28.
 * desc:
 */
public interface IHiTabLayout<Tab extends ViewGroup, D> {
    /**
     * 根据数据找到Tab
     */
    Tab findTab(@NonNull D data);

    /**
     * 设置默认选中tab
     */
    void defaultSelected(@NonNull D defaultInfo);

    /**
     * 设置tab数据
     */
    void inflateInfo(@NonNull List<D> infoList);

    /**
     * 设置tab选中变化监听
     */
    void addOnTabSelectedChangeListener(OnTabSelectedChangeListener<D> listener);

    interface OnTabSelectedChangeListener<D> {
        /**
         *  tab 选中变化时的回调
         * @param index     nextInfo 的 角标index
         * @param preInfo   上一次选中
         * @param nextInfo  这次选中
         */
        void onTabSelectedChange(int index, @Nullable D preInfo, @NonNull D nextInfo);
    }
}
